/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.apache.camel.kafkaconnector.mllp;

import java.util.Map;
import javax.annotation.Generated;
import org.apache.camel.kafkaconnector.CamelSinkConnectorConfig;
import org.apache.kafka.common.config.ConfigDef;

@Generated("This class has been generated by camel-kafka-connector-generator-maven-plugin, remove this annotation to prevent it from being generated.")
public class CamelMllpSinkConnectorConfig extends CamelSinkConnectorConfig {

    public static final String CAMEL_SINK_MLLP_PATH_HOSTNAME_CONF = "camel.sink.path.hostname";
    public static final String CAMEL_SINK_MLLP_PATH_HOSTNAME_DOC = "Hostname or IP for connection for the TCP connection. The default value is null, which means any local IP address";
    public static final String CAMEL_SINK_MLLP_PATH_HOSTNAME_DEFAULT = null;
    public static final String CAMEL_SINK_MLLP_PATH_PORT_CONF = "camel.sink.path.port";
    public static final String CAMEL_SINK_MLLP_PATH_PORT_DOC = "Port number for the TCP connection";
    public static final Integer CAMEL_SINK_MLLP_PATH_PORT_DEFAULT = null;
    public static final String CAMEL_SINK_MLLP_ENDPOINT_AUTO_ACK_CONF = "camel.sink.endpoint.autoAck";
    public static final String CAMEL_SINK_MLLP_ENDPOINT_AUTO_ACK_DOC = "Enable/Disable the automatic generation of a MLLP Acknowledgement MLLP Consumers only";
    public static final Boolean CAMEL_SINK_MLLP_ENDPOINT_AUTO_ACK_DEFAULT = true;
    public static final String CAMEL_SINK_MLLP_ENDPOINT_BUFFER_WRITES_CONF = "camel.sink.endpoint.bufferWrites";
    public static final String CAMEL_SINK_MLLP_ENDPOINT_BUFFER_WRITES_DOC = "Enable/Disable the buffering of HL7 payloads before writing to the socket.";
    public static final Boolean CAMEL_SINK_MLLP_ENDPOINT_BUFFER_WRITES_DEFAULT = false;
    public static final String CAMEL_SINK_MLLP_ENDPOINT_HL_7HEADERS_CONF = "camel.sink.endpoint.hl7Headers";
    public static final String CAMEL_SINK_MLLP_ENDPOINT_HL_7HEADERS_DOC = "Enable/Disable the automatic generation of message headers from the HL7 Message MLLP Consumers only";
    public static final Boolean CAMEL_SINK_MLLP_ENDPOINT_HL_7HEADERS_DEFAULT = true;
    public static final String CAMEL_SINK_MLLP_ENDPOINT_REQUIRE_END_OF_DATA_CONF = "camel.sink.endpoint.requireEndOfData";
    public static final String CAMEL_SINK_MLLP_ENDPOINT_REQUIRE_END_OF_DATA_DOC = "Enable/Disable strict compliance to the MLLP standard. The MLLP standard specifies START_OF_BLOCKhl7 payloadEND_OF_BLOCKEND_OF_DATA, however, some systems do not send the final END_OF_DATA byte. This setting controls whether or not the final END_OF_DATA byte is required or optional.";
    public static final Boolean CAMEL_SINK_MLLP_ENDPOINT_REQUIRE_END_OF_DATA_DEFAULT = true;
    public static final String CAMEL_SINK_MLLP_ENDPOINT_STRING_PAYLOAD_CONF = "camel.sink.endpoint.stringPayload";
    public static final String CAMEL_SINK_MLLP_ENDPOINT_STRING_PAYLOAD_DOC = "Enable/Disable converting the payload to a String. If enabled, HL7 Payloads received from external systems will be validated converted to a String. If the charsetName property is set, that character set will be used for the conversion. If the charsetName property is not set, the value of MSH-18 will be used to determine th appropriate character set. If MSH-18 is not set, then the default ISO-8859-1 character set will be use.";
    public static final Boolean CAMEL_SINK_MLLP_ENDPOINT_STRING_PAYLOAD_DEFAULT = true;
    public static final String CAMEL_SINK_MLLP_ENDPOINT_VALIDATE_PAYLOAD_CONF = "camel.sink.endpoint.validatePayload";
    public static final String CAMEL_SINK_MLLP_ENDPOINT_VALIDATE_PAYLOAD_DOC = "Enable/Disable the validation of HL7 Payloads If enabled, HL7 Payloads received from external systems will be validated (see Hl7Util.generateInvalidPayloadExceptionMessage for details on the validation). If and invalid payload is detected, a MllpInvalidMessageException (for consumers) or a MllpInvalidAcknowledgementException will be thrown.";
    public static final Boolean CAMEL_SINK_MLLP_ENDPOINT_VALIDATE_PAYLOAD_DEFAULT = false;
    public static final String CAMEL_SINK_MLLP_ENDPOINT_LAZY_START_PRODUCER_CONF = "camel.sink.endpoint.lazyStartProducer";
    public static final String CAMEL_SINK_MLLP_ENDPOINT_LAZY_START_PRODUCER_DOC = "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.";
    public static final Boolean CAMEL_SINK_MLLP_ENDPOINT_LAZY_START_PRODUCER_DEFAULT = false;
    public static final String CAMEL_SINK_MLLP_ENDPOINT_CHARSET_NAME_CONF = "camel.sink.endpoint.charsetName";
    public static final String CAMEL_SINK_MLLP_ENDPOINT_CHARSET_NAME_DOC = "Set the CamelCharsetName property on the exchange";
    public static final String CAMEL_SINK_MLLP_ENDPOINT_CHARSET_NAME_DEFAULT = null;
    public static final String CAMEL_SINK_MLLP_ENDPOINT_KEEP_ALIVE_CONF = "camel.sink.endpoint.keepAlive";
    public static final String CAMEL_SINK_MLLP_ENDPOINT_KEEP_ALIVE_DOC = "Enable/disable the SO_KEEPALIVE socket option.";
    public static final String CAMEL_SINK_MLLP_ENDPOINT_KEEP_ALIVE_DEFAULT = "true";
    public static final String CAMEL_SINK_MLLP_ENDPOINT_RECEIVE_BUFFER_SIZE_CONF = "camel.sink.endpoint.receiveBufferSize";
    public static final String CAMEL_SINK_MLLP_ENDPOINT_RECEIVE_BUFFER_SIZE_DOC = "Sets the SO_RCVBUF option to the specified value (in bytes)";
    public static final String CAMEL_SINK_MLLP_ENDPOINT_RECEIVE_BUFFER_SIZE_DEFAULT = "8192";
    public static final String CAMEL_SINK_MLLP_ENDPOINT_SEND_BUFFER_SIZE_CONF = "camel.sink.endpoint.sendBufferSize";
    public static final String CAMEL_SINK_MLLP_ENDPOINT_SEND_BUFFER_SIZE_DOC = "Sets the SO_SNDBUF option to the specified value (in bytes)";
    public static final String CAMEL_SINK_MLLP_ENDPOINT_SEND_BUFFER_SIZE_DEFAULT = "8192";
    public static final String CAMEL_SINK_MLLP_ENDPOINT_TCP_NO_DELAY_CONF = "camel.sink.endpoint.tcpNoDelay";
    public static final String CAMEL_SINK_MLLP_ENDPOINT_TCP_NO_DELAY_DOC = "Enable/disable the TCP_NODELAY socket option.";
    public static final String CAMEL_SINK_MLLP_ENDPOINT_TCP_NO_DELAY_DEFAULT = "true";
    public static final String CAMEL_SINK_MLLP_ENDPOINT_CONNECT_TIMEOUT_CONF = "camel.sink.endpoint.connectTimeout";
    public static final String CAMEL_SINK_MLLP_ENDPOINT_CONNECT_TIMEOUT_DOC = "Timeout (in milliseconds) for establishing for a TCP connection TCP Client only";
    public static final Integer CAMEL_SINK_MLLP_ENDPOINT_CONNECT_TIMEOUT_DEFAULT = 30000;
    public static final String CAMEL_SINK_MLLP_ENDPOINT_IDLE_TIMEOUT_CONF = "camel.sink.endpoint.idleTimeout";
    public static final String CAMEL_SINK_MLLP_ENDPOINT_IDLE_TIMEOUT_DOC = "The approximate idle time allowed before the Client TCP Connection will be reset. A null value or a value less than or equal to zero will disable the idle timeout.";
    public static final String CAMEL_SINK_MLLP_ENDPOINT_IDLE_TIMEOUT_DEFAULT = null;
    public static final String CAMEL_SINK_MLLP_ENDPOINT_READ_TIMEOUT_CONF = "camel.sink.endpoint.readTimeout";
    public static final String CAMEL_SINK_MLLP_ENDPOINT_READ_TIMEOUT_DOC = "The SO_TIMEOUT value (in milliseconds) used after the start of an MLLP frame has been received";
    public static final Integer CAMEL_SINK_MLLP_ENDPOINT_READ_TIMEOUT_DEFAULT = 5000;
    public static final String CAMEL_SINK_MLLP_ENDPOINT_RECEIVE_TIMEOUT_CONF = "camel.sink.endpoint.receiveTimeout";
    public static final String CAMEL_SINK_MLLP_ENDPOINT_RECEIVE_TIMEOUT_DOC = "The SO_TIMEOUT value (in milliseconds) used when waiting for the start of an MLLP frame";
    public static final Integer CAMEL_SINK_MLLP_ENDPOINT_RECEIVE_TIMEOUT_DEFAULT = 15000;
    public static final String CAMEL_SINK_MLLP_COMPONENT_LAZY_START_PRODUCER_CONF = "camel.component.mllp.lazyStartProducer";
    public static final String CAMEL_SINK_MLLP_COMPONENT_LAZY_START_PRODUCER_DOC = "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.";
    public static final Boolean CAMEL_SINK_MLLP_COMPONENT_LAZY_START_PRODUCER_DEFAULT = false;
    public static final String CAMEL_SINK_MLLP_COMPONENT_AUTOWIRED_ENABLED_CONF = "camel.component.mllp.autowiredEnabled";
    public static final String CAMEL_SINK_MLLP_COMPONENT_AUTOWIRED_ENABLED_DOC = "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.";
    public static final Boolean CAMEL_SINK_MLLP_COMPONENT_AUTOWIRED_ENABLED_DEFAULT = true;
    public static final String CAMEL_SINK_MLLP_COMPONENT_DEFAULT_CHARSET_CONF = "camel.component.mllp.defaultCharset";
    public static final String CAMEL_SINK_MLLP_COMPONENT_DEFAULT_CHARSET_DOC = "Set the default character set to use for byte to/from String conversions.";
    public static final String CAMEL_SINK_MLLP_COMPONENT_DEFAULT_CHARSET_DEFAULT = "ISO-8859-1";
    public static final String CAMEL_SINK_MLLP_COMPONENT_LOG_PHI_CONF = "camel.component.mllp.logPhi";
    public static final String CAMEL_SINK_MLLP_COMPONENT_LOG_PHI_DOC = "Set the component to log PHI data.";
    public static final String CAMEL_SINK_MLLP_COMPONENT_LOG_PHI_DEFAULT = "true";
    public static final String CAMEL_SINK_MLLP_COMPONENT_LOG_PHI_MAX_BYTES_CONF = "camel.component.mllp.logPhiMaxBytes";
    public static final String CAMEL_SINK_MLLP_COMPONENT_LOG_PHI_MAX_BYTES_DOC = "Set the maximum number of bytes of PHI that will be logged in a log entry.";
    public static final String CAMEL_SINK_MLLP_COMPONENT_LOG_PHI_MAX_BYTES_DEFAULT = "5120";

    public CamelMllpSinkConnectorConfig(
            ConfigDef config,
            Map<String, String> parsedConfig) {
        super(config, parsedConfig);
    }

    public CamelMllpSinkConnectorConfig(Map<String, String> parsedConfig) {
        this(conf(), parsedConfig);
    }

    public static ConfigDef conf() {
        ConfigDef conf = new ConfigDef(CamelSinkConnectorConfig.conf());
        conf.define(CAMEL_SINK_MLLP_PATH_HOSTNAME_CONF, ConfigDef.Type.STRING, CAMEL_SINK_MLLP_PATH_HOSTNAME_DEFAULT, ConfigDef.Importance.HIGH, CAMEL_SINK_MLLP_PATH_HOSTNAME_DOC);
        conf.define(CAMEL_SINK_MLLP_PATH_PORT_CONF, ConfigDef.Type.INT, CAMEL_SINK_MLLP_PATH_PORT_DEFAULT, ConfigDef.Importance.HIGH, CAMEL_SINK_MLLP_PATH_PORT_DOC);
        conf.define(CAMEL_SINK_MLLP_ENDPOINT_AUTO_ACK_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SINK_MLLP_ENDPOINT_AUTO_ACK_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_MLLP_ENDPOINT_AUTO_ACK_DOC);
        conf.define(CAMEL_SINK_MLLP_ENDPOINT_BUFFER_WRITES_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SINK_MLLP_ENDPOINT_BUFFER_WRITES_DEFAULT, ConfigDef.Importance.LOW, CAMEL_SINK_MLLP_ENDPOINT_BUFFER_WRITES_DOC);
        conf.define(CAMEL_SINK_MLLP_ENDPOINT_HL_7HEADERS_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SINK_MLLP_ENDPOINT_HL_7HEADERS_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_MLLP_ENDPOINT_HL_7HEADERS_DOC);
        conf.define(CAMEL_SINK_MLLP_ENDPOINT_REQUIRE_END_OF_DATA_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SINK_MLLP_ENDPOINT_REQUIRE_END_OF_DATA_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_MLLP_ENDPOINT_REQUIRE_END_OF_DATA_DOC);
        conf.define(CAMEL_SINK_MLLP_ENDPOINT_STRING_PAYLOAD_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SINK_MLLP_ENDPOINT_STRING_PAYLOAD_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_MLLP_ENDPOINT_STRING_PAYLOAD_DOC);
        conf.define(CAMEL_SINK_MLLP_ENDPOINT_VALIDATE_PAYLOAD_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SINK_MLLP_ENDPOINT_VALIDATE_PAYLOAD_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_MLLP_ENDPOINT_VALIDATE_PAYLOAD_DOC);
        conf.define(CAMEL_SINK_MLLP_ENDPOINT_LAZY_START_PRODUCER_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SINK_MLLP_ENDPOINT_LAZY_START_PRODUCER_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_MLLP_ENDPOINT_LAZY_START_PRODUCER_DOC);
        conf.define(CAMEL_SINK_MLLP_ENDPOINT_CHARSET_NAME_CONF, ConfigDef.Type.STRING, CAMEL_SINK_MLLP_ENDPOINT_CHARSET_NAME_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_MLLP_ENDPOINT_CHARSET_NAME_DOC);
        conf.define(CAMEL_SINK_MLLP_ENDPOINT_KEEP_ALIVE_CONF, ConfigDef.Type.STRING, CAMEL_SINK_MLLP_ENDPOINT_KEEP_ALIVE_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_MLLP_ENDPOINT_KEEP_ALIVE_DOC);
        conf.define(CAMEL_SINK_MLLP_ENDPOINT_RECEIVE_BUFFER_SIZE_CONF, ConfigDef.Type.STRING, CAMEL_SINK_MLLP_ENDPOINT_RECEIVE_BUFFER_SIZE_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_MLLP_ENDPOINT_RECEIVE_BUFFER_SIZE_DOC);
        conf.define(CAMEL_SINK_MLLP_ENDPOINT_SEND_BUFFER_SIZE_CONF, ConfigDef.Type.STRING, CAMEL_SINK_MLLP_ENDPOINT_SEND_BUFFER_SIZE_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_MLLP_ENDPOINT_SEND_BUFFER_SIZE_DOC);
        conf.define(CAMEL_SINK_MLLP_ENDPOINT_TCP_NO_DELAY_CONF, ConfigDef.Type.STRING, CAMEL_SINK_MLLP_ENDPOINT_TCP_NO_DELAY_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_MLLP_ENDPOINT_TCP_NO_DELAY_DOC);
        conf.define(CAMEL_SINK_MLLP_ENDPOINT_CONNECT_TIMEOUT_CONF, ConfigDef.Type.INT, CAMEL_SINK_MLLP_ENDPOINT_CONNECT_TIMEOUT_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_MLLP_ENDPOINT_CONNECT_TIMEOUT_DOC);
        conf.define(CAMEL_SINK_MLLP_ENDPOINT_IDLE_TIMEOUT_CONF, ConfigDef.Type.STRING, CAMEL_SINK_MLLP_ENDPOINT_IDLE_TIMEOUT_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_MLLP_ENDPOINT_IDLE_TIMEOUT_DOC);
        conf.define(CAMEL_SINK_MLLP_ENDPOINT_READ_TIMEOUT_CONF, ConfigDef.Type.INT, CAMEL_SINK_MLLP_ENDPOINT_READ_TIMEOUT_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_MLLP_ENDPOINT_READ_TIMEOUT_DOC);
        conf.define(CAMEL_SINK_MLLP_ENDPOINT_RECEIVE_TIMEOUT_CONF, ConfigDef.Type.INT, CAMEL_SINK_MLLP_ENDPOINT_RECEIVE_TIMEOUT_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_MLLP_ENDPOINT_RECEIVE_TIMEOUT_DOC);
        conf.define(CAMEL_SINK_MLLP_COMPONENT_LAZY_START_PRODUCER_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SINK_MLLP_COMPONENT_LAZY_START_PRODUCER_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_MLLP_COMPONENT_LAZY_START_PRODUCER_DOC);
        conf.define(CAMEL_SINK_MLLP_COMPONENT_AUTOWIRED_ENABLED_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SINK_MLLP_COMPONENT_AUTOWIRED_ENABLED_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_MLLP_COMPONENT_AUTOWIRED_ENABLED_DOC);
        conf.define(CAMEL_SINK_MLLP_COMPONENT_DEFAULT_CHARSET_CONF, ConfigDef.Type.STRING, CAMEL_SINK_MLLP_COMPONENT_DEFAULT_CHARSET_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_MLLP_COMPONENT_DEFAULT_CHARSET_DOC);
        conf.define(CAMEL_SINK_MLLP_COMPONENT_LOG_PHI_CONF, ConfigDef.Type.STRING, CAMEL_SINK_MLLP_COMPONENT_LOG_PHI_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_MLLP_COMPONENT_LOG_PHI_DOC);
        conf.define(CAMEL_SINK_MLLP_COMPONENT_LOG_PHI_MAX_BYTES_CONF, ConfigDef.Type.STRING, CAMEL_SINK_MLLP_COMPONENT_LOG_PHI_MAX_BYTES_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_MLLP_COMPONENT_LOG_PHI_MAX_BYTES_DOC);
        return conf;
    }
}